import { DateTime } from 'luxon'
import { BaseModel, BelongsTo, belongsTo, column } from '@ioc:Adonis/Lucid/Orm'
import Article from './Article'
import Profile from './Profile'

/**
 * 评论表模型
 */
export default class Comment extends BaseModel {
  // 定义主键 数字类型
  @column({ isPrimary: true })
  public id: number

  // 所属文章id 数字类型
  @column()
  public articleId: number

  // 作者id 数字类型
  @column()
  public authorId: number

  // 评论内容 字符串类型
  @column()
  public body: string

  // 从属关系 从属于文章
  @belongsTo(() => Article)
  public article: BelongsTo<typeof Article>

  // 从属关系
  @belongsTo(() => Profile, { localKey: 'id', foreignKey: 'authorId' })
  public author: BelongsTo<typeof Profile>

  @column.dateTime({ autoCreate: true })
  public createdAt: DateTime

  @column.dateTime({ autoCreate: true, autoUpdate: true })
  public updatedAt: DateTime
}
